﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using SimpleIoC.Dominio.Servicio;
using SimpleIoC.Dominio.Interfases;
using SimpleIoC.Dominio.Repositorio;
using SimpleIoC.Dominio.Entidades;
using System.Collections;
using IoC4Fun;

namespace SimpleIoC
{
    class Program
    {
        static void Main(string[] args)
        {
            ProbandoIoCEstatico();
            
        }

        private static void ProbandoIoCEstatico()
        {
            var myIoC = new Container4Fun();
            myIoC.Register<ILogger, LoggerServicio>("Logger");
            myIoC.Register<ILogger, AnotherLoggerServicio>();
            myIoC.Register<IClienteRepositorio, ClienteRepositorio>();
            myIoC.Register<IConfiguracionRepositorio, ConfiguracionRepositorio>();
            IClienteRepositorio clienteRpt = myIoC.Resolve<IClienteRepositorio>();
            IList<Cliente> listadoClientes = clienteRpt.ObtenerListado();
            Console.WriteLine("Cantidad de clientes obtenidos {0}",listadoClientes.Count);
            Console.ReadLine();
        }
    }
}
